﻿//=============================================================================
//【 FontManagerBase 】
//=============================================================================

//-------------------------------------------------------------------------
//
//-------------------------------------------------------------------------
#include "stdafx.h"
#include "FontManagerBase.h"

//-------------------------------------------------------------------------
//
//-------------------------------------------------------------------------
namespace LNote
{
namespace Core
{
namespace Graphics
{

//=============================================================================
// ■ FontManagerBase クラス
//=============================================================================

    //---------------------------------------------------------------------
    // ● コンストラクタ
    //---------------------------------------------------------------------
    FontManagerBase::FontManagerBase()
        : mDefaultFont  ( NULL )
    {
    }

    //---------------------------------------------------------------------
    // ● デストラクタ
    //---------------------------------------------------------------------
    FontManagerBase::~FontManagerBase()
    {
    }

    //---------------------------------------------------------------------
    // ● 初期化
    //---------------------------------------------------------------------
    void FontManagerBase::initialize()
    {
        mDefaultFont = createFont();
    }

    //---------------------------------------------------------------------
    // ● 終了処理
    //---------------------------------------------------------------------
    void FontManagerBase::finalize()
    {
        LN_SAFE_RELEASE( mDefaultFont );
    }

    //---------------------------------------------------------------------
    // ● フォントの作成
    //---------------------------------------------------------------------
    IFont* FontManagerBase::createFont( const lnChar* fontname_ )
    {
        IFont* font;
        mDefaultFont->deepCopy( &font );
        if ( fontname_ )
        {
            font->setName( fontname_ );
        }
        return font;
    }
    
    //---------------------------------------------------------------------
    // ● デフォルトのフォントをセットする
    //---------------------------------------------------------------------
    void FontManagerBase::setDefaultFont( IFont* font_ )
    {
        LN_SAFE_RELEASE( mDefaultFont );
        mDefaultFont = font_;
        LN_SAFE_ADDREF( mDefaultFont );
    }

    //---------------------------------------------------------------------
    // ● デフォルトのフォントを取得する
    //---------------------------------------------------------------------
    IFont* FontManagerBase::getDefaultFont()
    { 
        return mDefaultFont;
    }

//-------------------------------------------------------------------------
//
//-------------------------------------------------------------------------

} // namespace Graphics
} // namespace Core
} // namespace LNote

//=============================================================================
//
//=============================================================================